package cn.iocoder.yudao.module.diy.dal.dataobject.config;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 装修配置 DO
 *
 * @author 芋道源码
 */
@TableName(value = "diy_config", autoResultMap = true)
@KeySequence("diy_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DiyConfigDO extends TenantBaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 业务拓展ID
     */
    private Long siteId;
    /**
     * 插件id
     */
    private Long addonId;
    /**
     * 配置项关键字
     */
    private String configKey;
    /**
     * 配置值json
     */
    private String configValue;
    /**
     * 是否启用 1启用 0不启用
     */
    private Integer configStatus;

    /**
     * 返回 JSON对象
     *
     * @return
     */
    public JSONObject getObjectValue() {
        if (this.getConfigValue() != null && this.getConfigValue().startsWith("{")) {
            return JSONUtil.parseObj(this.getConfigValue());
        }
        return new JSONObject();
    }

    /**
     * 返回 JSON数组
     *
     * @return
     */
    public JSONArray getArrayValue() {
        if (this.getConfigValue() != null && this.getConfigValue().startsWith("[")) {
            return JSONUtil.parseArray(this.getConfigValue());
        }
        return new JSONArray();
    }

}